The present invention relates to dependency management among computer program objects representing application state.
The Model-View-Controller (“MVC”) paradigm of object-oriented programming exploits the observation is that certain objects model user abstractions, other objects create views (projections) of those objects, and still others manipulate objects, perhaps through views. It has also been observed that model-view relationship can be understood in terms of subject and observer roles and that an object might have the role of subject in one relation and of observer in another.
Many solutions exist for the problem of keeping a dependent state consistent (i.e., synchronized) with the state upon which it depends. Traditional notification mechanisms require observers to register explicitly with their subject a callback routine of some sort, in which an observer is notified of a change to a piece of state on which it depends and recomputes its own state accordingly. Lazy-update mechanisms also exist, where dependents are simply dirtied and subsequently re-synchronized as well.